#ifndef CLASSCONTENT_H
#define CLASSCONTENT_H

//#include "Include.h"
//#include "Program.h"
//#include "Namespace.h"
#include "Class.h"

namespace FunctionViewer {
	class ClassContent {
		friend class Main;
		friend class Program;
		friend class Namespace;
		friend class Class;

		//variables.
		private:
		Program *program;
		Namespace *v_namespace;
		Class *v_class;
		ClassContent *prev, *next;
		
		unsigned long id;
		char* type, *funcname, *description;

		private:
		void Init(Class* f_class, unsigned long f_id, char* f_type, char* f_funcname, char* f_description);
		void DeInit();

		public:
		inline unsigned long GetID() {return id;}
		inline void CacheID() {v_class->current_content = this;}
		inline Program* GetProgram() {return program;}
		inline Namespace* GetNamespace() {return v_namespace;}
		inline Class* GetClass() {return v_class;}
		inline ClassContent* GetPrev() {return prev;}
		inline ClassContent* GetNext() {return next;}
	};
}

#endif //CLASSCONTENT_H